{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 140,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>User ID</th>\n",
       "      <th>Product ID</th>\n",
       "      <th>Product Name</th>\n",
       "      <th>Brand</th>\n",
       "      <th>Category</th>\n",
       "      <th>Price</th>\n",
       "      <th>Rating</th>\n",
       "      <th>Color</th>\n",
       "      <th>Size</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>19</td>\n",
       "      <td>1</td>\n",
       "      <td>Dress</td>\n",
       "      <td>Adidas</td>\n",
       "      <td>Men's Fashion</td>\n",
       "      <td>40</td>\n",
       "      <td>1.043159</td>\n",
       "      <td>Black</td>\n",
       "      <td>XL</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>97</td>\n",
       "      <td>2</td>\n",
       "      <td>Shoes</td>\n",
       "      <td>H&amp;M</td>\n",
       "      <td>Women's Fashion</td>\n",
       "      <td>82</td>\n",
       "      <td>4.026416</td>\n",
       "      <td>Black</td>\n",
       "      <td>L</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>25</td>\n",
       "      <td>3</td>\n",
       "      <td>Dress</td>\n",
       "      <td>Adidas</td>\n",
       "      <td>Women's Fashion</td>\n",
       "      <td>44</td>\n",
       "      <td>3.337938</td>\n",
       "      <td>Yellow</td>\n",
       "      <td>XL</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>57</td>\n",
       "      <td>4</td>\n",
       "      <td>Shoes</td>\n",
       "      <td>Zara</td>\n",
       "      <td>Men's Fashion</td>\n",
       "      <td>23</td>\n",
       "      <td>1.049523</td>\n",
       "      <td>White</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>79</td>\n",
       "      <td>5</td>\n",
       "      <td>T-shirt</td>\n",
       "      <td>Adidas</td>\n",
       "      <td>Men's Fashion</td>\n",
       "      <td>79</td>\n",
       "      <td>4.302773</td>\n",
       "      <td>Black</td>\n",
       "      <td>M</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   User ID  Product ID Product Name   Brand         Category  Price    Rating  \\\n",
       "0       19           1        Dress  Adidas    Men's Fashion     40  1.043159   \n",
       "1       97           2        Shoes     H&M  Women's Fashion     82  4.026416   \n",
       "2       25           3        Dress  Adidas  Women's Fashion     44  3.337938   \n",
       "3       57           4        Shoes    Zara    Men's Fashion     23  1.049523   \n",
       "4       79           5      T-shirt  Adidas    Men's Fashion     79  4.302773   \n",
       "\n",
       "    Color Size  \n",
       "0   Black   XL  \n",
       "1   Black    L  \n",
       "2  Yellow   XL  \n",
       "3   White    S  \n",
       "4   Black    M  "
      ]
     },
     "execution_count": 140,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import pandas as pd\n",
    "\n",
    "df_data = pd.read_csv(\"./fashion_products.csv\")\n",
    "df_data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 141,
   "metadata": {},
   "outputs": [],
   "source": [
    "#产品分类占比情况 - 获取饼图数据\n",
    "pie_raw_data = df_data[\"Category\"].value_counts().to_dict()\n",
    "pie_data = []\n",
    "for key,value in pie_raw_data.items():\n",
    "    pie_data.append([key,value])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 142,
   "metadata": {},
   "outputs": [],
   "source": [
    "#品牌分类占比情况 - 获取饼图数据\n",
    "bra_pie_raw_data = df_data[\"Brand\"].value_counts().to_dict()\n",
    "bra_pie_data = []\n",
    "for key,value in bra_pie_raw_data.items():\n",
    "    bra_pie_data.append([key,value])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 143,
   "metadata": {},
   "outputs": [],
   "source": [
    "\n",
    "#产品数量对比情况 - 获取柱状图数据\n",
    "bar_raw_data = df_data[\"Product Name\"].value_counts()\n",
    "\n",
    "bar_xdata = list(bar_raw_data.index)\n",
    "bar_ydata = bar_raw_data.to_list()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 144,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Index(['Product Name', 'Brand', 'Category', 'Price', 'Rating'], dtype='object')\n",
      "[['Dress' 'Zara' \"Kids' Fashion\" 33 4.987964320970842]\n",
      " ['Jeans' 'Zara' \"Men's Fashion\" 34 4.986091107444631]\n",
      " ['Shoes' 'Gucci' \"Women's Fashion\" 57 4.985949918767776]\n",
      " ['T-shirt' 'Zara' \"Women's Fashion\" 15 4.9806556343987305]\n",
      " ['T-shirt' 'Adidas' \"Kids' Fashion\" 38 4.9796782936579325]]\n"
     ]
    }
   ],
   "source": [
    "# 评分最高的产品 商品 价格 表格\n",
    "sort_rating_raw_data = df_data.iloc[:,2:7].sort_values(by='Rating',ascending=False)\n",
    "final_df_rating = sort_rating_raw_data[0:5]\n",
    "print(final_df_rating.columns)\n",
    "print(final_df_rating.values)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 145,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/var/folders/_3/jpjrs_894tvcsp4b3ktrwnj40000gn/T/ipykernel_35272/1476369049.py:6: SettingWithCopyWarning: \n",
      "A value is trying to be set on a copy of a slice from a DataFrame.\n",
      "Try using .loc[row_indexer,col_indexer] = value instead\n",
      "\n",
      "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
      "  final_df_price['Combined'] = final_df_price['Product Name'].str.cat(final_df_price['Brand'], sep=' ')\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Product Name</th>\n",
       "      <th>Brand</th>\n",
       "      <th>Category</th>\n",
       "      <th>Price</th>\n",
       "      <th>Rating</th>\n",
       "      <th>Combined</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>91</th>\n",
       "      <td>Jeans</td>\n",
       "      <td>Adidas</td>\n",
       "      <td>Men's Fashion</td>\n",
       "      <td>100</td>\n",
       "      <td>1.845071</td>\n",
       "      <td>Jeans Adidas</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>937</th>\n",
       "      <td>T-shirt</td>\n",
       "      <td>Gucci</td>\n",
       "      <td>Kids' Fashion</td>\n",
       "      <td>100</td>\n",
       "      <td>3.217890</td>\n",
       "      <td>T-shirt Gucci</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>268</th>\n",
       "      <td>Shoes</td>\n",
       "      <td>H&amp;M</td>\n",
       "      <td>Kids' Fashion</td>\n",
       "      <td>100</td>\n",
       "      <td>4.743391</td>\n",
       "      <td>Shoes H&amp;M</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>711</th>\n",
       "      <td>Shoes</td>\n",
       "      <td>Gucci</td>\n",
       "      <td>Kids' Fashion</td>\n",
       "      <td>100</td>\n",
       "      <td>4.610942</td>\n",
       "      <td>Shoes Gucci</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>737</th>\n",
       "      <td>Jeans</td>\n",
       "      <td>H&amp;M</td>\n",
       "      <td>Men's Fashion</td>\n",
       "      <td>100</td>\n",
       "      <td>1.033843</td>\n",
       "      <td>Jeans H&amp;M</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>868</th>\n",
       "      <td>Jeans</td>\n",
       "      <td>Zara</td>\n",
       "      <td>Men's Fashion</td>\n",
       "      <td>100</td>\n",
       "      <td>1.839079</td>\n",
       "      <td>Jeans Zara</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>435</th>\n",
       "      <td>T-shirt</td>\n",
       "      <td>Zara</td>\n",
       "      <td>Kids' Fashion</td>\n",
       "      <td>99</td>\n",
       "      <td>2.822618</td>\n",
       "      <td>T-shirt Zara</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>862</th>\n",
       "      <td>Shoes</td>\n",
       "      <td>Gucci</td>\n",
       "      <td>Men's Fashion</td>\n",
       "      <td>99</td>\n",
       "      <td>1.433025</td>\n",
       "      <td>Shoes Gucci</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>559</th>\n",
       "      <td>Dress</td>\n",
       "      <td>Adidas</td>\n",
       "      <td>Women's Fashion</td>\n",
       "      <td>99</td>\n",
       "      <td>1.002064</td>\n",
       "      <td>Dress Adidas</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>788</th>\n",
       "      <td>Jeans</td>\n",
       "      <td>Nike</td>\n",
       "      <td>Women's Fashion</td>\n",
       "      <td>99</td>\n",
       "      <td>2.514205</td>\n",
       "      <td>Jeans Nike</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    Product Name   Brand         Category  Price    Rating       Combined\n",
       "91         Jeans  Adidas    Men's Fashion    100  1.845071   Jeans Adidas\n",
       "937      T-shirt   Gucci    Kids' Fashion    100  3.217890  T-shirt Gucci\n",
       "268        Shoes     H&M    Kids' Fashion    100  4.743391      Shoes H&M\n",
       "711        Shoes   Gucci    Kids' Fashion    100  4.610942    Shoes Gucci\n",
       "737        Jeans     H&M    Men's Fashion    100  1.033843      Jeans H&M\n",
       "868        Jeans    Zara    Men's Fashion    100  1.839079     Jeans Zara\n",
       "435      T-shirt    Zara    Kids' Fashion     99  2.822618   T-shirt Zara\n",
       "862        Shoes   Gucci    Men's Fashion     99  1.433025    Shoes Gucci\n",
       "559        Dress  Adidas  Women's Fashion     99  1.002064   Dress Adidas\n",
       "788        Jeans    Nike  Women's Fashion     99  2.514205     Jeans Nike"
      ]
     },
     "execution_count": 145,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 评分最高的产品 商品 价格 表格\n",
    "sort_pri_raw_data = df_data.iloc[:,2:7].sort_values(by='Price',ascending=False)\n",
    "final_df_price = sort_pri_raw_data[0:10]\n",
    "\n",
    "# 合并两列字符串\n",
    "final_df_price['Combined'] = final_df_price['Product Name'].str.cat(final_df_price['Brand'], sep=' ')\n",
    "final_df_price"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 146,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "  Column1  Column2       Combined\n",
      "0   Hello  Welcome  Hello Welcome\n",
      "1   World       to       World to\n"
     ]
    }
   ],
   "source": [
    "import pandas as pd\n",
    "\n",
    "# 创建示例DataFrame\n",
    "data = {'Column1': ['Hello', 'World'],\n",
    "        'Column2': ['Welcome', 'to']}\n",
    "\n",
    "df = pd.DataFrame(data)\n",
    "\n",
    "# 合并两列字符串\n",
    "df['Combined'] = df['Column1'].str.cat(df['Column2'], sep=' ')\n",
    "\n",
    "print(df)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 152,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'/Users/ldc1995/Desktop/data_vision/test.html'"
      ]
     },
     "execution_count": 152,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from pyecharts import options as opts\n",
    "from pyecharts.charts import Pie\n",
    "from pyecharts.charts import Page\n",
    "from pyecharts.charts import Bar\n",
    "from pyecharts.components import Table\n",
    "\n",
    "\n",
    "# 大屏标题\n",
    "def make_title():\n",
    "    table = Table()\n",
    "    table.add(headers=[\"用户产品评分数据分析大屏\"], rows=[], attributes={\n",
    "        \"align\": \"center\",\n",
    "        \"border\": False,\n",
    "        \"padding\": \"2px\",\n",
    "        \"style\": \"background:{}; width:1350px; height:50px; font-size:25px; color:#C0C0C0;\".format(\"#100c2a\")\n",
    "    })\n",
    "    return table\n",
    "\n",
    "#产品分类占比情况\n",
    "def make_pie():\n",
    "    pie = (\n",
    "        Pie().add(\n",
    "        series_name=\"产品分类占比情况\",\n",
    "        data_pair= pie_data,\n",
    "        radius=[\"30%\",\"55%\"]\n",
    "        ).set_global_opts(\n",
    "        title_opts=opts.TitleOpts(title=\"产品分类占比情况\"),\n",
    "        legend_opts=opts.LegendOpts(border_width=0,pos_left=\"right\",orient=\"vertical\")\n",
    "        ).set_series_opts(label_opts=opts.LabelOpts(formatter=\"{b}:{d}%\"))\n",
    "    ).set_dark_mode()\n",
    "    return pie\n",
    "\n",
    "#品牌分类占比情况\n",
    "def make_brand_pie():\n",
    "    pie = (\n",
    "        Pie().add(\n",
    "        series_name=\"品牌分类占比情况\",\n",
    "        data_pair= bra_pie_data,\n",
    "        radius=[\"30%\",\"55%\"]\n",
    "        ).set_global_opts(\n",
    "        title_opts=opts.TitleOpts(title=\"品牌分类占比情况\"),\n",
    "        legend_opts=opts.LegendOpts(border_width=0,pos_left=\"right\",orient=\"vertical\")\n",
    "        ).set_series_opts(label_opts=opts.LabelOpts(formatter=\"{b}:{d}%\"))\n",
    "    ).set_dark_mode()\n",
    "    return pie\n",
    "\n",
    "#产品数量情况对比\n",
    "def make_bar():\n",
    "    bar = (\n",
    "        Bar()\n",
    "        .add_xaxis(bar_xdata)\n",
    "        .add_yaxis(\"\",bar_ydata)\n",
    "        .set_global_opts(\n",
    "        title_opts=opts.TitleOpts(title=\"产品数量情况对比\"),\n",
    "        legend_opts=opts.LegendOpts(is_show=False))\n",
    "        .set_dark_mode()\n",
    "\n",
    "    )\n",
    "    return bar\n",
    "\n",
    "#价格最高的top10 产品\n",
    "def make_price_bar():\n",
    "    bar = (\n",
    "        Bar()\n",
    "        .add_xaxis(list(final_df_price['Combined']))  # 增加x轴数据\n",
    "        .add_yaxis(\"评论数量\", list(final_df_price['Price']))  # 增加y轴数据\n",
    "        .reversal_axis()  # 设置水平方向\n",
    "        .set_dark_mode()\n",
    "        .set_series_opts(label_opts=opts.LabelOpts(position=\"right\"))  # Label出现位置\n",
    "        .set_global_opts(\n",
    "        legend_opts=opts.LegendOpts(pos_left='right'),\n",
    "        title_opts=opts.TitleOpts(title=\"价格最高的top10 产品\", pos_left='center'),  # 标题\n",
    "        toolbox_opts=opts.ToolboxOpts(is_show=False, ),  # 不显示工具箱\n",
    "        xaxis_opts=opts.AxisOpts(name=\"价格\",  # x轴名称\n",
    "\t                         axislabel_opts=opts.LabelOpts(font_size=14, rotate=0),\n",
    "\t                         splitline_opts=opts.SplitLineOpts(is_show=False)\n",
    "\t                         ),\n",
    "\tyaxis_opts=opts.AxisOpts(name=\"产品\",  # y轴名称\n",
    "\t                         axislabel_opts=opts.LabelOpts(font_size=14, rotate=45),  # y轴名称\n",
    "\t                         )\n",
    "                             )\n",
    "    )\n",
    "    return bar\n",
    "\n",
    "# 评分最高的产品 商品 价格 表格\n",
    "def make_table():\n",
    "    table = (\n",
    "        Table(page_title=\"评分最高的产品Tok 5\")\n",
    "        .add(headers=list(final_df_rating.columns),rows=final_df_rating.values,attributes={\n",
    "        \"align\": \"left\",\n",
    "        \"border\": False,\n",
    "        \"padding\": \"20px\",\n",
    "        \"style\": \"background:{}; height:350px; font-size:14px; color:#C0C0C0;padding:3px\".format(\"#100c2a\")\n",
    "    })\n",
    "    )\n",
    "    return table\n",
    "# 初始化大屏页面，页面组建可拖拽layout=Page.DraggablePageLayout\n",
    "page = Page(layout=Page.DraggablePageLayout)\n",
    " \n",
    "# 在页面中添加图表\n",
    "page.add(\n",
    "    make_title(),\n",
    "    make_pie(),\n",
    "    make_bar(),\n",
    "    make_table(),\n",
    "    make_brand_pie(),\n",
    "    make_price_bar()\n",
    "   )\n",
    " \n",
    "page.render('test.html')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 154,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'<!DOCTYPE html>\\n<html>\\n<head>\\n    <meta charset=\"UTF-8\">\\n    <title>Awesome-pyecharts</title>\\n                <script type=\"text/javascript\" src=\"https://assets.pyecharts.org/assets/v5/echarts.min.js\"></script>\\n            <script type=\"text/javascript\" src=\"https://assets.pyecharts.org/assets/v5/jquery.min.js\"></script>\\n            <script type=\"text/javascript\" src=\"https://assets.pyecharts.org/assets/v5/jquery-ui.min.js\"></script>\\n            <script type=\"text/javascript\" src=\"https://assets.pyecharts.org/assets/v5/ResizeSensor.js\"></script>\\n\\n            <link rel=\"stylesheet\"  href=\"https://assets.pyecharts.org/assets/v5/jquery-ui.css\">\\n\\n</head>\\n<body >\\n    <style>.box {  } </style>\\n        \\n    <div class=\"box\">\\n                        <style>\\n            .fl-table {\\n                margin: 20px;\\n                border-radius: 5px;\\n                font-size: 12px;\\n                border: none;\\n                border-collapse: collapse;\\n                max-width: 100%;\\n                white-space: nowrap;\\n                word-break: keep-all;\\n            }\\n\\n            .fl-table th {\\n                text-align: left;\\n                font-size: 20px;\\n            }\\n\\n            .fl-table tr {\\n                display: table-row;\\n                vertical-align: inherit;\\n                border-color: inherit;\\n            }\\n\\n            .fl-table tr:hover td {\\n                background: #00d1b2;\\n                color: #F8F8F8;\\n            }\\n\\n            .fl-table td, .fl-table th {\\n                border-style: none;\\n                border-top: 1px solid #dbdbdb;\\n                border-left: 1px solid #dbdbdb;\\n                border-bottom: 3px solid #dbdbdb;\\n                border-right: 1px solid #dbdbdb;\\n                padding: .5em .55em;\\n                font-size: 15px;\\n            }\\n\\n            .fl-table td {\\n                border-style: none;\\n                font-size: 15px;\\n                vertical-align: center;\\n                border-bottom: 1px solid #dbdbdb;\\n                border-left: 1px solid #dbdbdb;\\n                border-right: 1px solid #dbdbdb;\\n                height: 30px;\\n            }\\n\\n            .fl-table tr:nth-child(even) {\\n                background: #F8F8F8;\\n            }\\n        </style>\\n        <div id=\"4a1ebe37172141eab6d75522d7482b01\" class=\"chart-container\" style=\"position: absolute; width: 1422px; height: 62px; top: 30px; left: 8px;\">\\n            <p class=\"title\" style=\"font-size: 18px; font-weight:bold;\" > </p>\\n            <p class=\"subtitle\" style=\"font-size: 12px;\" > </p>\\n            <table align=\"center\" border=\"False\" padding=\"2px\" style=\"background:#100c2a; width:1350px; height:50px; font-size:25px; color:#C0C0C0;\">\\n    <thead>\\n        <tr>\\n            <th>用户产品评分数据分析大屏</th>\\n        </tr>\\n    </thead>\\n    <tbody>\\n    </tbody>\\n</table>\\n        </div>\\n\\n<br/>                <div id=\"7924f1b9f47a48798b7bc01389ff3aae\" class=\"chart-container\" style=\"position: absolute; width: 479px; height: 346px; top: 88px; left: 45px;\"></div>\\n    <script>\\n        var chart_7924f1b9f47a48798b7bc01389ff3aae = echarts.init(\\n            document.getElementById(\\'7924f1b9f47a48798b7bc01389ff3aae\\'), \\'dark\\', {renderer: \\'canvas\\'});\\n        var option_7924f1b9f47a48798b7bc01389ff3aae = {\\n    \"backgroundColor\": \"#100C2A\",\\n    \"animation\": true,\\n    \"animationThreshold\": 2000,\\n    \"animationDuration\": 1000,\\n    \"animationEasing\": \"cubicOut\",\\n    \"animationDelay\": 0,\\n    \"animationDurationUpdate\": 300,\\n    \"animationEasingUpdate\": \"cubicOut\",\\n    \"animationDelayUpdate\": 0,\\n    \"aria\": {\\n        \"enabled\": false\\n    },\\n    \"color\": [\\n        \"#4992ff\",\\n        \"#7cffb2\",\\n        \"#fddd60\",\\n        \"#ff6e76\",\\n        \"#58d9f9\",\\n        \"#05c091\",\\n        \"#ff8a45\",\\n        \"#8d48e3\",\\n        \"#dd79ff\"\\n    ],\\n    \"series\": [\\n        {\\n            \"type\": \"pie\",\\n            \"name\": \"\\\\u4ea7\\\\u54c1\\\\u5206\\\\u7c7b\\\\u5360\\\\u6bd4\\\\u60c5\\\\u51b5\",\\n            \"colorBy\": \"data\",\\n            \"legendHoverLink\": true,\\n            \"selectedMode\": false,\\n            \"selectedOffset\": 10,\\n            \"clockwise\": true,\\n            \"startAngle\": 90,\\n            \"minAngle\": 0,\\n            \"minShowLabelAngle\": 0,\\n            \"avoidLabelOverlap\": true,\\n            \"stillShowZeroSum\": true,\\n            \"percentPrecision\": 2,\\n            \"showEmptyCircle\": true,\\n            \"emptyCircleStyle\": {\\n                \"color\": \"lightgray\",\\n                \"borderColor\": \"#000\",\\n                \"borderWidth\": 0,\\n                \"borderType\": \"solid\",\\n                \"borderDashOffset\": 0,\\n                \"borderCap\": \"butt\",\\n                \"borderJoin\": \"bevel\",\\n                \"borderMiterLimit\": 10,\\n                \"opacity\": 1\\n            },\\n            \"data\": [\\n                {\\n                    \"name\": \"Kids\\' Fashion\",\\n                    \"value\": 351\\n                },\\n                {\\n                    \"name\": \"Women\\'s Fashion\",\\n                    \"value\": 327\\n                },\\n                {\\n                    \"name\": \"Men\\'s Fashion\",\\n                    \"value\": 322\\n                }\\n            ],\\n            \"radius\": [\\n                \"30%\",\\n                \"55%\"\\n            ],\\n            \"center\": [\\n                \"50%\",\\n                \"50%\"\\n            ],\\n            \"label\": {\\n                \"show\": true,\\n                \"margin\": 8,\\n                \"formatter\": \"{b}:{d}%\"\\n            },\\n            \"labelLine\": {\\n                \"show\": true,\\n                \"showAbove\": false,\\n                \"length\": 15,\\n                \"length2\": 15,\\n                \"smooth\": false,\\n                \"minTurnAngle\": 90,\\n                \"maxSurfaceAngle\": 90\\n            },\\n            \"rippleEffect\": {\\n                \"show\": true,\\n                \"brushType\": \"stroke\",\\n                \"scale\": 2.5,\\n                \"period\": 4\\n            }\\n        }\\n    ],\\n    \"legend\": [\\n        {\\n            \"data\": [\\n                \"Kids\\' Fashion\",\\n                \"Women\\'s Fashion\",\\n                \"Men\\'s Fashion\"\\n            ],\\n            \"selected\": {},\\n            \"show\": true,\\n            \"left\": \"right\",\\n            \"orient\": \"vertical\",\\n            \"padding\": 5,\\n            \"itemGap\": 10,\\n            \"itemWidth\": 25,\\n            \"itemHeight\": 14,\\n            \"backgroundColor\": \"transparent\",\\n            \"borderColor\": \"#ccc\",\\n            \"borderWidth\": 0,\\n            \"borderRadius\": 0,\\n            \"pageButtonItemGap\": 5,\\n            \"pageButtonPosition\": \"end\",\\n            \"pageFormatter\": \"{current}/{total}\",\\n            \"pageIconColor\": \"#2f4554\",\\n            \"pageIconInactiveColor\": \"#aaa\",\\n            \"pageIconSize\": 15,\\n            \"animationDurationUpdate\": 800,\\n            \"selector\": false,\\n            \"selectorPosition\": \"auto\",\\n            \"selectorItemGap\": 7,\\n            \"selectorButtonGap\": 10\\n        }\\n    ],\\n    \"tooltip\": {\\n        \"show\": true,\\n        \"trigger\": \"item\",\\n        \"triggerOn\": \"mousemove|click\",\\n        \"axisPointer\": {\\n            \"type\": \"line\"\\n        },\\n        \"showContent\": true,\\n        \"alwaysShowContent\": false,\\n        \"showDelay\": 0,\\n        \"hideDelay\": 100,\\n        \"enterable\": false,\\n        \"confine\": false,\\n        \"appendToBody\": false,\\n        \"transitionDuration\": 0.4,\\n        \"textStyle\": {\\n            \"fontSize\": 14\\n        },\\n        \"borderWidth\": 0,\\n        \"padding\": 5,\\n        \"order\": \"seriesAsc\"\\n    },\\n    \"title\": [\\n        {\\n            \"show\": true,\\n            \"text\": \"\\\\u4ea7\\\\u54c1\\\\u5206\\\\u7c7b\\\\u5360\\\\u6bd4\\\\u60c5\\\\u51b5\",\\n            \"target\": \"blank\",\\n            \"subtarget\": \"blank\",\\n            \"padding\": 5,\\n            \"itemGap\": 10,\\n            \"textAlign\": \"auto\",\\n            \"textVerticalAlign\": \"auto\",\\n            \"triggerEvent\": false\\n        }\\n    ],\\n    \"darkMode\": true\\n};\\n        chart_7924f1b9f47a48798b7bc01389ff3aae.setOption(option_7924f1b9f47a48798b7bc01389ff3aae);\\n    </script>\\n<br/>                <div id=\"3a68ad8031ab4c26a1d4e3b1b724e376\" class=\"chart-container\" style=\"position: absolute; width: 482px; height: 352px; top: 434px; left: 45px;\"></div>\\n    <script>\\n        var chart_3a68ad8031ab4c26a1d4e3b1b724e376 = echarts.init(\\n            document.getElementById(\\'3a68ad8031ab4c26a1d4e3b1b724e376\\'), \\'dark\\', {renderer: \\'canvas\\'});\\n        var option_3a68ad8031ab4c26a1d4e3b1b724e376 = {\\n    \"backgroundColor\": \"#100C2A\",\\n    \"animation\": true,\\n    \"animationThreshold\": 2000,\\n    \"animationDuration\": 1000,\\n    \"animationEasing\": \"cubicOut\",\\n    \"animationDelay\": 0,\\n    \"animationDurationUpdate\": 300,\\n    \"animationEasingUpdate\": \"cubicOut\",\\n    \"animationDelayUpdate\": 0,\\n    \"aria\": {\\n        \"enabled\": false\\n    },\\n    \"color\": [\\n        \"#4992ff\",\\n        \"#7cffb2\",\\n        \"#fddd60\",\\n        \"#ff6e76\",\\n        \"#58d9f9\",\\n        \"#05c091\",\\n        \"#ff8a45\",\\n        \"#8d48e3\",\\n        \"#dd79ff\"\\n    ],\\n    \"series\": [\\n        {\\n            \"type\": \"bar\",\\n            \"legendHoverLink\": true,\\n            \"data\": [\\n                231,\\n                222,\\n                201,\\n                176,\\n                170\\n            ],\\n            \"realtimeSort\": false,\\n            \"showBackground\": false,\\n            \"stackStrategy\": \"samesign\",\\n            \"cursor\": \"pointer\",\\n            \"barMinHeight\": 0,\\n            \"barCategoryGap\": \"20%\",\\n            \"barGap\": \"30%\",\\n            \"large\": false,\\n            \"largeThreshold\": 400,\\n            \"seriesLayoutBy\": \"column\",\\n            \"datasetIndex\": 0,\\n            \"clip\": true,\\n            \"zlevel\": 0,\\n            \"z\": 2,\\n            \"label\": {\\n                \"show\": true,\\n                \"margin\": 8\\n            }\\n        }\\n    ],\\n    \"legend\": [\\n        {\\n            \"data\": [\\n                \"\"\\n            ],\\n            \"selected\": {},\\n            \"show\": false,\\n            \"padding\": 5,\\n            \"itemGap\": 10,\\n            \"itemWidth\": 25,\\n            \"itemHeight\": 14,\\n            \"backgroundColor\": \"transparent\",\\n            \"borderColor\": \"#ccc\",\\n            \"borderWidth\": 1,\\n            \"borderRadius\": 0,\\n            \"pageButtonItemGap\": 5,\\n            \"pageButtonPosition\": \"end\",\\n            \"pageFormatter\": \"{current}/{total}\",\\n            \"pageIconColor\": \"#2f4554\",\\n            \"pageIconInactiveColor\": \"#aaa\",\\n            \"pageIconSize\": 15,\\n            \"animationDurationUpdate\": 800,\\n            \"selector\": false,\\n            \"selectorPosition\": \"auto\",\\n            \"selectorItemGap\": 7,\\n            \"selectorButtonGap\": 10\\n        }\\n    ],\\n    \"tooltip\": {\\n        \"show\": true,\\n        \"trigger\": \"item\",\\n        \"triggerOn\": \"mousemove|click\",\\n        \"axisPointer\": {\\n            \"type\": \"line\"\\n        },\\n        \"showContent\": true,\\n        \"alwaysShowContent\": false,\\n        \"showDelay\": 0,\\n        \"hideDelay\": 100,\\n        \"enterable\": false,\\n        \"confine\": false,\\n        \"appendToBody\": false,\\n        \"transitionDuration\": 0.4,\\n        \"textStyle\": {\\n            \"fontSize\": 14\\n        },\\n        \"borderWidth\": 0,\\n        \"padding\": 5,\\n        \"order\": \"seriesAsc\"\\n    },\\n    \"xAxis\": [\\n        {\\n            \"show\": true,\\n            \"scale\": false,\\n            \"nameLocation\": \"end\",\\n            \"nameGap\": 15,\\n            \"gridIndex\": 0,\\n            \"inverse\": false,\\n            \"offset\": 0,\\n            \"splitNumber\": 5,\\n            \"minInterval\": 0,\\n            \"splitLine\": {\\n                \"show\": true,\\n                \"lineStyle\": {\\n                    \"show\": true,\\n                    \"width\": 1,\\n                    \"opacity\": 1,\\n                    \"curveness\": 0,\\n                    \"type\": \"solid\"\\n                }\\n            },\\n            \"data\": [\\n                \"Jeans\",\\n                \"Shoes\",\\n                \"T-shirt\",\\n                \"Dress\",\\n                \"Sweater\"\\n            ]\\n        }\\n    ],\\n    \"yAxis\": [\\n        {\\n            \"show\": true,\\n            \"scale\": false,\\n            \"nameLocation\": \"end\",\\n            \"nameGap\": 15,\\n            \"gridIndex\": 0,\\n            \"inverse\": false,\\n            \"offset\": 0,\\n            \"splitNumber\": 5,\\n            \"minInterval\": 0,\\n            \"splitLine\": {\\n                \"show\": true,\\n                \"lineStyle\": {\\n                    \"show\": true,\\n                    \"width\": 1,\\n                    \"opacity\": 1,\\n                    \"curveness\": 0,\\n                    \"type\": \"solid\"\\n                }\\n            }\\n        }\\n    ],\\n    \"title\": [\\n        {\\n            \"show\": true,\\n            \"text\": \"\\\\u4ea7\\\\u54c1\\\\u6570\\\\u91cf\\\\u60c5\\\\u51b5\\\\u5bf9\\\\u6bd4\",\\n            \"target\": \"blank\",\\n            \"subtarget\": \"blank\",\\n            \"padding\": 5,\\n            \"itemGap\": 10,\\n            \"textAlign\": \"auto\",\\n            \"textVerticalAlign\": \"auto\",\\n            \"triggerEvent\": false\\n        }\\n    ],\\n    \"darkMode\": true\\n};\\n        chart_3a68ad8031ab4c26a1d4e3b1b724e376.setOption(option_3a68ad8031ab4c26a1d4e3b1b724e376);\\n    </script>\\n<br/>                        <style>\\n            .fl-table {\\n                margin: 20px;\\n                border-radius: 5px;\\n                font-size: 12px;\\n                border: none;\\n                border-collapse: collapse;\\n                max-width: 100%;\\n                white-space: nowrap;\\n                word-break: keep-all;\\n            }\\n\\n            .fl-table th {\\n                text-align: left;\\n                font-size: 20px;\\n            }\\n\\n            .fl-table tr {\\n                display: table-row;\\n                vertical-align: inherit;\\n                border-color: inherit;\\n            }\\n\\n            .fl-table tr:hover td {\\n                background: #00d1b2;\\n                color: #F8F8F8;\\n            }\\n\\n            .fl-table td, .fl-table th {\\n                border-style: none;\\n                border-top: 1px solid #dbdbdb;\\n                border-left: 1px solid #dbdbdb;\\n                border-bottom: 3px solid #dbdbdb;\\n                border-right: 1px solid #dbdbdb;\\n                padding: .5em .55em;\\n                font-size: 15px;\\n            }\\n\\n            .fl-table td {\\n                border-style: none;\\n                font-size: 15px;\\n                vertical-align: center;\\n                border-bottom: 1px solid #dbdbdb;\\n                border-left: 1px solid #dbdbdb;\\n                border-right: 1px solid #dbdbdb;\\n                height: 30px;\\n            }\\n\\n            .fl-table tr:nth-child(even) {\\n                background: #F8F8F8;\\n            }\\n        </style>\\n        <div id=\"30af00e2582247ddaa2ac269c442df76\" class=\"chart-container\" style=\"position: absolute; width: 422px; height: 367px; top: 69px; left: 973px;\">\\n            <p class=\"title\" style=\"font-size: 18px; font-weight:bold;\" > </p>\\n            <p class=\"subtitle\" style=\"font-size: 12px;\" > </p>\\n            <table align=\"left\" border=\"False\" padding=\"20px\" style=\"background:#100c2a; height:350px; font-size:14px; color:#C0C0C0;padding:3px\">\\n    <thead>\\n        <tr>\\n            <th>Product Name</th>\\n            <th>Brand</th>\\n            <th>Category</th>\\n            <th>Price</th>\\n            <th>Rating</th>\\n        </tr>\\n    </thead>\\n    <tbody>\\n        <tr>\\n            <td>Dress</td>\\n            <td>Zara</td>\\n            <td>Kids&#x27; Fashion</td>\\n            <td>33</td>\\n            <td>4.987964320970842</td>\\n        </tr>\\n        <tr>\\n            <td>Jeans</td>\\n            <td>Zara</td>\\n            <td>Men&#x27;s Fashion</td>\\n            <td>34</td>\\n            <td>4.986091107444631</td>\\n        </tr>\\n        <tr>\\n            <td>Shoes</td>\\n            <td>Gucci</td>\\n            <td>Women&#x27;s Fashion</td>\\n            <td>57</td>\\n            <td>4.985949918767776</td>\\n        </tr>\\n        <tr>\\n            <td>T-shirt</td>\\n            <td>Zara</td>\\n            <td>Women&#x27;s Fashion</td>\\n            <td>15</td>\\n            <td>4.9806556343987305</td>\\n        </tr>\\n        <tr>\\n            <td>T-shirt</td>\\n            <td>Adidas</td>\\n            <td>Kids&#x27; Fashion</td>\\n            <td>38</td>\\n            <td>4.9796782936579325</td>\\n        </tr>\\n    </tbody>\\n</table>\\n        </div>\\n\\n<br/>                <div id=\"4dfd92b5fce64d1699779451159dff1c\" class=\"chart-container\" style=\"position: absolute; width: 451px; height: 346px; top: 85px; left: 524px;\"></div>\\n    <script>\\n        var chart_4dfd92b5fce64d1699779451159dff1c = echarts.init(\\n            document.getElementById(\\'4dfd92b5fce64d1699779451159dff1c\\'), \\'dark\\', {renderer: \\'canvas\\'});\\n        var option_4dfd92b5fce64d1699779451159dff1c = {\\n    \"backgroundColor\": \"#100C2A\",\\n    \"animation\": true,\\n    \"animationThreshold\": 2000,\\n    \"animationDuration\": 1000,\\n    \"animationEasing\": \"cubicOut\",\\n    \"animationDelay\": 0,\\n    \"animationDurationUpdate\": 300,\\n    \"animationEasingUpdate\": \"cubicOut\",\\n    \"animationDelayUpdate\": 0,\\n    \"aria\": {\\n        \"enabled\": false\\n    },\\n    \"color\": [\\n        \"#4992ff\",\\n        \"#7cffb2\",\\n        \"#fddd60\",\\n        \"#ff6e76\",\\n        \"#58d9f9\",\\n        \"#05c091\",\\n        \"#ff8a45\",\\n        \"#8d48e3\",\\n        \"#dd79ff\"\\n    ],\\n    \"series\": [\\n        {\\n            \"type\": \"pie\",\\n            \"name\": \"\\\\u54c1\\\\u724c\\\\u5206\\\\u7c7b\\\\u5360\\\\u6bd4\\\\u60c5\\\\u51b5\",\\n            \"colorBy\": \"data\",\\n            \"legendHoverLink\": true,\\n            \"selectedMode\": false,\\n            \"selectedOffset\": 10,\\n            \"clockwise\": true,\\n            \"startAngle\": 90,\\n            \"minAngle\": 0,\\n            \"minShowLabelAngle\": 0,\\n            \"avoidLabelOverlap\": true,\\n            \"stillShowZeroSum\": true,\\n            \"percentPrecision\": 2,\\n            \"showEmptyCircle\": true,\\n            \"emptyCircleStyle\": {\\n                \"color\": \"lightgray\",\\n                \"borderColor\": \"#000\",\\n                \"borderWidth\": 0,\\n                \"borderType\": \"solid\",\\n                \"borderDashOffset\": 0,\\n                \"borderCap\": \"butt\",\\n                \"borderJoin\": \"bevel\",\\n                \"borderMiterLimit\": 10,\\n                \"opacity\": 1\\n            },\\n            \"data\": [\\n                {\\n                    \"name\": \"Nike\",\\n                    \"value\": 214\\n                },\\n                {\\n                    \"name\": \"Zara\",\\n                    \"value\": 203\\n                },\\n                {\\n                    \"name\": \"Adidas\",\\n                    \"value\": 198\\n                },\\n                {\\n                    \"name\": \"H&M\",\\n                    \"value\": 194\\n                },\\n                {\\n                    \"name\": \"Gucci\",\\n                    \"value\": 191\\n                }\\n            ],\\n            \"radius\": [\\n                \"30%\",\\n                \"55%\"\\n            ],\\n            \"center\": [\\n                \"50%\",\\n                \"50%\"\\n            ],\\n            \"label\": {\\n                \"show\": true,\\n                \"margin\": 8,\\n                \"formatter\": \"{b}:{d}%\"\\n            },\\n            \"labelLine\": {\\n                \"show\": true,\\n                \"showAbove\": false,\\n                \"length\": 15,\\n                \"length2\": 15,\\n                \"smooth\": false,\\n                \"minTurnAngle\": 90,\\n                \"maxSurfaceAngle\": 90\\n            },\\n            \"rippleEffect\": {\\n                \"show\": true,\\n                \"brushType\": \"stroke\",\\n                \"scale\": 2.5,\\n                \"period\": 4\\n            }\\n        }\\n    ],\\n    \"legend\": [\\n        {\\n            \"data\": [\\n                \"Nike\",\\n                \"Zara\",\\n                \"Adidas\",\\n                \"H&M\",\\n                \"Gucci\"\\n            ],\\n            \"selected\": {},\\n            \"show\": true,\\n            \"left\": \"right\",\\n            \"orient\": \"vertical\",\\n            \"padding\": 5,\\n            \"itemGap\": 10,\\n            \"itemWidth\": 25,\\n            \"itemHeight\": 14,\\n            \"backgroundColor\": \"transparent\",\\n            \"borderColor\": \"#ccc\",\\n            \"borderWidth\": 0,\\n            \"borderRadius\": 0,\\n            \"pageButtonItemGap\": 5,\\n            \"pageButtonPosition\": \"end\",\\n            \"pageFormatter\": \"{current}/{total}\",\\n            \"pageIconColor\": \"#2f4554\",\\n            \"pageIconInactiveColor\": \"#aaa\",\\n            \"pageIconSize\": 15,\\n            \"animationDurationUpdate\": 800,\\n            \"selector\": false,\\n            \"selectorPosition\": \"auto\",\\n            \"selectorItemGap\": 7,\\n            \"selectorButtonGap\": 10\\n        }\\n    ],\\n    \"tooltip\": {\\n        \"show\": true,\\n        \"trigger\": \"item\",\\n        \"triggerOn\": \"mousemove|click\",\\n        \"axisPointer\": {\\n            \"type\": \"line\"\\n        },\\n        \"showContent\": true,\\n        \"alwaysShowContent\": false,\\n        \"showDelay\": 0,\\n        \"hideDelay\": 100,\\n        \"enterable\": false,\\n        \"confine\": false,\\n        \"appendToBody\": false,\\n        \"transitionDuration\": 0.4,\\n        \"textStyle\": {\\n            \"fontSize\": 14\\n        },\\n        \"borderWidth\": 0,\\n        \"padding\": 5,\\n        \"order\": \"seriesAsc\"\\n    },\\n    \"title\": [\\n        {\\n            \"show\": true,\\n            \"text\": \"\\\\u54c1\\\\u724c\\\\u5206\\\\u7c7b\\\\u5360\\\\u6bd4\\\\u60c5\\\\u51b5\",\\n            \"target\": \"blank\",\\n            \"subtarget\": \"blank\",\\n            \"padding\": 5,\\n            \"itemGap\": 10,\\n            \"textAlign\": \"auto\",\\n            \"textVerticalAlign\": \"auto\",\\n            \"triggerEvent\": false\\n        }\\n    ],\\n    \"darkMode\": true\\n};\\n        chart_4dfd92b5fce64d1699779451159dff1c.setOption(option_4dfd92b5fce64d1699779451159dff1c);\\n    </script>\\n<br/>                <div id=\"284256d2503842ac8145ebc3b3b0a080\" class=\"chart-container\" style=\"position: absolute; width: 869px; height: 358px; top: 428px; left: 524px;\"></div>\\n    <script>\\n        var chart_284256d2503842ac8145ebc3b3b0a080 = echarts.init(\\n            document.getElementById(\\'284256d2503842ac8145ebc3b3b0a080\\'), \\'dark\\', {renderer: \\'canvas\\'});\\n        var option_284256d2503842ac8145ebc3b3b0a080 = {\\n    \"backgroundColor\": \"#100C2A\",\\n    \"animation\": true,\\n    \"animationThreshold\": 2000,\\n    \"animationDuration\": 1000,\\n    \"animationEasing\": \"cubicOut\",\\n    \"animationDelay\": 0,\\n    \"animationDurationUpdate\": 300,\\n    \"animationEasingUpdate\": \"cubicOut\",\\n    \"animationDelayUpdate\": 0,\\n    \"aria\": {\\n        \"enabled\": false\\n    },\\n    \"color\": [\\n        \"#4992ff\",\\n        \"#7cffb2\",\\n        \"#fddd60\",\\n        \"#ff6e76\",\\n        \"#58d9f9\",\\n        \"#05c091\",\\n        \"#ff8a45\",\\n        \"#8d48e3\",\\n        \"#dd79ff\"\\n    ],\\n    \"series\": [\\n        {\\n            \"type\": \"bar\",\\n            \"name\": \"\\\\u8bc4\\\\u8bba\\\\u6570\\\\u91cf\",\\n            \"legendHoverLink\": true,\\n            \"data\": [\\n                100,\\n                100,\\n                100,\\n                100,\\n                100,\\n                100,\\n                99,\\n                99,\\n                99,\\n                99\\n            ],\\n            \"realtimeSort\": false,\\n            \"showBackground\": false,\\n            \"stackStrategy\": \"samesign\",\\n            \"cursor\": \"pointer\",\\n            \"barMinHeight\": 0,\\n            \"barCategoryGap\": \"20%\",\\n            \"barGap\": \"30%\",\\n            \"large\": false,\\n            \"largeThreshold\": 400,\\n            \"seriesLayoutBy\": \"column\",\\n            \"datasetIndex\": 0,\\n            \"clip\": true,\\n            \"zlevel\": 0,\\n            \"z\": 2,\\n            \"label\": {\\n                \"show\": true,\\n                \"position\": \"right\",\\n                \"margin\": 8\\n            },\\n            \"rippleEffect\": {\\n                \"show\": true,\\n                \"brushType\": \"stroke\",\\n                \"scale\": 2.5,\\n                \"period\": 4\\n            }\\n        }\\n    ],\\n    \"legend\": [\\n        {\\n            \"data\": [\\n                \"\\\\u8bc4\\\\u8bba\\\\u6570\\\\u91cf\"\\n            ],\\n            \"selected\": {},\\n            \"show\": true,\\n            \"left\": \"right\",\\n            \"padding\": 5,\\n            \"itemGap\": 10,\\n            \"itemWidth\": 25,\\n            \"itemHeight\": 14,\\n            \"backgroundColor\": \"transparent\",\\n            \"borderColor\": \"#ccc\",\\n            \"borderWidth\": 1,\\n            \"borderRadius\": 0,\\n            \"pageButtonItemGap\": 5,\\n            \"pageButtonPosition\": \"end\",\\n            \"pageFormatter\": \"{current}/{total}\",\\n            \"pageIconColor\": \"#2f4554\",\\n            \"pageIconInactiveColor\": \"#aaa\",\\n            \"pageIconSize\": 15,\\n            \"animationDurationUpdate\": 800,\\n            \"selector\": false,\\n            \"selectorPosition\": \"auto\",\\n            \"selectorItemGap\": 7,\\n            \"selectorButtonGap\": 10\\n        }\\n    ],\\n    \"tooltip\": {\\n        \"show\": true,\\n        \"trigger\": \"item\",\\n        \"triggerOn\": \"mousemove|click\",\\n        \"axisPointer\": {\\n            \"type\": \"line\"\\n        },\\n        \"showContent\": true,\\n        \"alwaysShowContent\": false,\\n        \"showDelay\": 0,\\n        \"hideDelay\": 100,\\n        \"enterable\": false,\\n        \"confine\": false,\\n        \"appendToBody\": false,\\n        \"transitionDuration\": 0.4,\\n        \"textStyle\": {\\n            \"fontSize\": 14\\n        },\\n        \"borderWidth\": 0,\\n        \"padding\": 5,\\n        \"order\": \"seriesAsc\"\\n    },\\n    \"xAxis\": [\\n        {\\n            \"name\": \"\\\\u4ef7\\\\u683c\",\\n            \"show\": true,\\n            \"scale\": false,\\n            \"nameLocation\": \"end\",\\n            \"nameGap\": 15,\\n            \"gridIndex\": 0,\\n            \"axisLabel\": {\\n                \"show\": true,\\n                \"rotate\": 0,\\n                \"margin\": 8,\\n                \"fontSize\": 14\\n            },\\n            \"inverse\": false,\\n            \"offset\": 0,\\n            \"splitNumber\": 5,\\n            \"minInterval\": 0,\\n            \"splitLine\": {\\n                \"show\": false,\\n                \"lineStyle\": {\\n                    \"show\": true,\\n                    \"width\": 1,\\n                    \"opacity\": 1,\\n                    \"curveness\": 0,\\n                    \"type\": \"solid\"\\n                }\\n            }\\n        }\\n    ],\\n    \"yAxis\": [\\n        {\\n            \"name\": \"\\\\u4ea7\\\\u54c1\",\\n            \"show\": true,\\n            \"scale\": false,\\n            \"nameLocation\": \"end\",\\n            \"nameGap\": 15,\\n            \"gridIndex\": 0,\\n            \"axisLabel\": {\\n                \"show\": true,\\n                \"rotate\": 45,\\n                \"margin\": 8,\\n                \"fontSize\": 14\\n            },\\n            \"inverse\": false,\\n            \"offset\": 0,\\n            \"splitNumber\": 5,\\n            \"minInterval\": 0,\\n            \"splitLine\": {\\n                \"show\": true,\\n                \"lineStyle\": {\\n                    \"show\": true,\\n                    \"width\": 1,\\n                    \"opacity\": 1,\\n                    \"curveness\": 0,\\n                    \"type\": \"solid\"\\n                }\\n            },\\n            \"data\": [\\n                \"Jeans Adidas\",\\n                \"T-shirt Gucci\",\\n                \"Shoes H&M\",\\n                \"Shoes Gucci\",\\n                \"Jeans H&M\",\\n                \"Jeans Zara\",\\n                \"T-shirt Zara\",\\n                \"Shoes Gucci\",\\n                \"Dress Adidas\",\\n                \"Jeans Nike\"\\n            ]\\n        }\\n    ],\\n    \"darkMode\": true,\\n    \"title\": [\\n        {\\n            \"show\": true,\\n            \"text\": \"\\\\u4ef7\\\\u683c\\\\u6700\\\\u9ad8\\\\u7684top10 \\\\u4ea7\\\\u54c1\",\\n            \"target\": \"blank\",\\n            \"subtarget\": \"blank\",\\n            \"left\": \"center\",\\n            \"padding\": 5,\\n            \"itemGap\": 10,\\n            \"textAlign\": \"auto\",\\n            \"textVerticalAlign\": \"auto\",\\n            \"triggerEvent\": false\\n        }\\n    ],\\n    \"toolbox\": {\\n        \"show\": false,\\n        \"orient\": \"horizontal\",\\n        \"itemSize\": 15,\\n        \"itemGap\": 10,\\n        \"left\": \"80%\",\\n        \"feature\": {\\n            \"saveAsImage\": {\\n                \"type\": \"png\",\\n                \"backgroundColor\": \"auto\",\\n                \"connectedBackgroundColor\": \"#fff\",\\n                \"show\": true,\\n                \"title\": \"\\\\u4fdd\\\\u5b58\\\\u4e3a\\\\u56fe\\\\u7247\",\\n                \"pixelRatio\": 1\\n            },\\n            \"restore\": {\\n                \"show\": true,\\n                \"title\": \"\\\\u8fd8\\\\u539f\"\\n            },\\n            \"dataView\": {\\n                \"show\": true,\\n                \"title\": \"\\\\u6570\\\\u636e\\\\u89c6\\\\u56fe\",\\n                \"readOnly\": false,\\n                \"lang\": [\\n                    \"\\\\u6570\\\\u636e\\\\u89c6\\\\u56fe\",\\n                    \"\\\\u5173\\\\u95ed\",\\n                    \"\\\\u5237\\\\u65b0\"\\n                ],\\n                \"backgroundColor\": \"#fff\",\\n                \"textareaColor\": \"#fff\",\\n                \"textareaBorderColor\": \"#333\",\\n                \"textColor\": \"#000\",\\n                \"buttonColor\": \"#c23531\",\\n                \"buttonTextColor\": \"#fff\"\\n            },\\n            \"dataZoom\": {\\n                \"show\": true,\\n                \"title\": {\\n                    \"zoom\": \"\\\\u533a\\\\u57df\\\\u7f29\\\\u653e\",\\n                    \"back\": \"\\\\u533a\\\\u57df\\\\u7f29\\\\u653e\\\\u8fd8\\\\u539f\"\\n                },\\n                \"icon\": {},\\n                \"filterMode\": \"filter\"\\n            },\\n            \"magicType\": {\\n                \"show\": true,\\n                \"type\": [\\n                    \"line\",\\n                    \"bar\",\\n                    \"stack\",\\n                    \"tiled\"\\n                ],\\n                \"title\": {\\n                    \"line\": \"\\\\u5207\\\\u6362\\\\u4e3a\\\\u6298\\\\u7ebf\\\\u56fe\",\\n                    \"bar\": \"\\\\u5207\\\\u6362\\\\u4e3a\\\\u67f1\\\\u72b6\\\\u56fe\",\\n                    \"stack\": \"\\\\u5207\\\\u6362\\\\u4e3a\\\\u5806\\\\u53e0\",\\n                    \"tiled\": \"\\\\u5207\\\\u6362\\\\u4e3a\\\\u5e73\\\\u94fa\"\\n                },\\n                \"icon\": {}\\n            }\\n        }\\n    }\\n};\\n        chart_284256d2503842ac8145ebc3b3b0a080.setOption(option_284256d2503842ac8145ebc3b3b0a080);\\n    </script>\\n<br/>    </div>\\n    <script>\\n            $(\\'#4a1ebe37172141eab6d75522d7482b01\\').css(\\'border-style\\', \\'dashed\\').css(\\'border-width\\', \\'0px\\');$(\"#4a1ebe37172141eab6d75522d7482b01>div:nth-child(1)\").width(\"100%\").height(\"100%\");\\n            $(\\'#7924f1b9f47a48798b7bc01389ff3aae\\').css(\\'border-style\\', \\'dashed\\').css(\\'border-width\\', \\'0px\\');$(\"#7924f1b9f47a48798b7bc01389ff3aae>div:nth-child(1)\").width(\"100%\").height(\"100%\");\\n            new ResizeSensor(jQuery(\\'#7924f1b9f47a48798b7bc01389ff3aae\\'), function() { chart_7924f1b9f47a48798b7bc01389ff3aae.resize()});\\n            $(\\'#3a68ad8031ab4c26a1d4e3b1b724e376\\').css(\\'border-style\\', \\'dashed\\').css(\\'border-width\\', \\'0px\\');$(\"#3a68ad8031ab4c26a1d4e3b1b724e376>div:nth-child(1)\").width(\"100%\").height(\"100%\");\\n            new ResizeSensor(jQuery(\\'#3a68ad8031ab4c26a1d4e3b1b724e376\\'), function() { chart_3a68ad8031ab4c26a1d4e3b1b724e376.resize()});\\n            $(\\'#30af00e2582247ddaa2ac269c442df76\\').css(\\'border-style\\', \\'dashed\\').css(\\'border-width\\', \\'0px\\');$(\"#30af00e2582247ddaa2ac269c442df76>div:nth-child(1)\").width(\"100%\").height(\"100%\");\\n            $(\\'#4dfd92b5fce64d1699779451159dff1c\\').css(\\'border-style\\', \\'dashed\\').css(\\'border-width\\', \\'0px\\');$(\"#4dfd92b5fce64d1699779451159dff1c>div:nth-child(1)\").width(\"100%\").height(\"100%\");\\n            new ResizeSensor(jQuery(\\'#4dfd92b5fce64d1699779451159dff1c\\'), function() { chart_4dfd92b5fce64d1699779451159dff1c.resize()});\\n            $(\\'#284256d2503842ac8145ebc3b3b0a080\\').css(\\'border-style\\', \\'dashed\\').css(\\'border-width\\', \\'0px\\');$(\"#284256d2503842ac8145ebc3b3b0a080>div:nth-child(1)\").width(\"100%\").height(\"100%\");\\n            new ResizeSensor(jQuery(\\'#284256d2503842ac8145ebc3b3b0a080\\'), function() { chart_284256d2503842ac8145ebc3b3b0a080.resize()});\\n            var charts_id = [\\'4a1ebe37172141eab6d75522d7482b01\\',\\'7924f1b9f47a48798b7bc01389ff3aae\\',\\'3a68ad8031ab4c26a1d4e3b1b724e376\\',\\'30af00e2582247ddaa2ac269c442df76\\',\\'4dfd92b5fce64d1699779451159dff1c\\',\\'284256d2503842ac8145ebc3b3b0a080\\'];\\nfunction downloadCfg () {\\n    const fileName = \\'chart_config.json\\'\\n    let downLink = document.createElement(\\'a\\')\\n    downLink.download = fileName\\n\\n    let result = []\\n    for(let i=0; i<charts_id.length; i++) {\\n        chart = $(\\'#\\'+charts_id[i])\\n        result.push({\\n            cid: charts_id[i],\\n            width: chart.css(\"width\"),\\n            height: chart.css(\"height\"),\\n            top: chart.offset().top + \"px\",\\n            left: chart.offset().left + \"px\"\\n        })\\n    }\\n\\n    let blob = new Blob([JSON.stringify(result)])\\n    downLink.href = URL.createObjectURL(blob)\\n    document.body.appendChild(downLink)\\n    downLink.click()\\n    document.body.removeChild(downLink)\\n}\\n    </script>\\n</body>\\n</html>\\n'"
      ]
     },
     "execution_count": 154,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 执行之前,请确保:1、已经把json文件放到本目录下 2、把json中的title和table的id替换掉\n",
    "Page.save_resize_html(\n",
    "\tsource=\"test.html\",\n",
    "\tcfg_file=\"chart_config.json\",\n",
    "\tdest=\"大屏_最终.html\"\n",
    ")"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.9"
  },
  "orig_nbformat": 4
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
